Here we will verify that we need both links W=Whitehead link=L5a1=m129 and P=Whitehead sister=Pretzel P(-2,3,8)=m125=L13n5885 to realize the Boileau volume of lens spaces.
For that we will completely describe all ways in the 14 1-cusped hyperbolic manifolds of smallest volume can be obtained by surgery along P or W. By comparing with Dunfield's list of lens space fillings of these 14 smallest manifolds, we will see that there are lens spaces where the volume can only realized by surgery on W and some where we only get P.
First we describe the parent diagram. For that we use the volume bound p and q.
import snappy
def FKP_bound(vol_surgery_link,lower_volume_bound):
'''
Returns the Futer-Kalfagianni-Purcell bound, that gives a lower bound on the normalized
length of a slope to ensure that a filling with such a slope on a link with volume = vol_surgery_link
has volume at least lower_volume_bound.
'''
return 2*3.14159/sqrt(1-(lower_volume_bound/vol_surgery_link)^(2/3))+0.1
def all_positive(manifold):
'''
Checks if the solution type of a triangulation is positive.
'''
return manifold.solution_type() == 'all tetrahedra positively oriented'
def find_positive_triangulations(manifold,number=1,tries=100):
'''
Searches for one triangulation with a positive solution type.
(Or if number is set to a different value also for different such triangulations.)
'''
M = manifold.copy()
pos_triangulations=[]
for i in range(tries):
if all_positive(M):
pos_triangulations.append(M)
if len(pos_triangulations)==number:
return pos_triangulations
break
M.randomize()
for d in M.dual_curves(max_segments=500):
X = M.drill(d)
X = X.filled_triangulation()
X.dehn_fill((1,0),-1)
for i in range(tries):
if all_positive(X):
pos_triangulations.append(X)
if len(pos_triangulations)==number:
return pos_triangulations
break
X.randomize()
# In the closed case, here is another trick.
if all(not c for c in M.cusp_info('is_complete')):
for i in range(tries):
# Drills out a random edge
X = M.__class__(M.filled_triangulation())
if all_positive(X):
pos_triangulations.append(X)
if len(pos_triangulations)==number:
return pos_triangulations
break
M.randomize()
return pos_triangulations
def better_volume(M,index=100,try_hard=False):
'''Computes the verified volume. Returns 0 if SnapPy could not do it.'''
count=0
while count<index:
try:
return M.volume(verified=True)
except:
M.randomize()
count=count+1
if try_hard==True:
pos_triang=find_positive_triangulations(M,number=index,tries=index)
for X in pos_triang:
vol=better_volume(X,index)
if vol!=0:
return vol
return 0
The following are the 14 one-cusped manifolds of smallest volume (https://arxiv.org/pdf/2109.14570.pdf).
small=['m003','m004','m006','m007','m009','m010','m011','m015','m016','m017','m019', 'm022', 'm023', 'm026']
for name in small:
K=snappy.Manifold(name)
print(name,better_volume(K))
m003 2.0298832128193? m004 2.0298832128193? m006 2.5689706009367? m007 2.5689706009367? m009 2.666744783449? m010 2.666744783449? m011 2.7818339123961? m015 2.8281220883308? m016 2.8281220883308? m017 2.8281220883308? m019 2.9441064866767? m022 2.989120282930? m023 2.989120282930? m026 3.0593380577790?
W=snappy.Manifold('L5a1')
print(W.identify())
T=snappy.RationalTangle(-2,1)*snappy.RationalTangle(3,1)*snappy.RationalTangle(8,1)
P=T.denominator_closure().exterior()
print(P.identify())
volP=better_volume(P)
volW=better_volume(W)
print(volW,volP)
[m129(0,0)(0,0), 5^2_1(0,0)(0,0), L5a1(0,0)(0,0), ooct01_00001(0,0)(0,0)] [m125(0,0)(0,0), L13n5885(0,0)(0,0), ooct01_00000(0,0)(0,0)] 3.6638623767089? 3.663862376709?
W=snappy.Manifold('m129')
P=snappy.Manifold('m125')
So their volume is smaller than the Whithead link volume. We use the bound from (https://arxiv.org/pdf/math/0612138.pdf) to write down a complete parent diagram of the 14 manifolds of small volumes from W and P.
bound=FKP_bound(volW.center(),snappy.Manifold('m026').volume(verified=True).center())
print('The FKP-bound is:',bound)
for s in W.short_slopes(length=bound*math.sqrt(W.cusp_areas()[0]))[0]:
W.dehn_fill(s,0)
vol=better_volume(W,index=500,try_hard=True)
if vol==0:
print(s,vol)
if vol!=0:
if vol.center()<snappy.Manifold('m026').volume(verified=True).center()+0.1:
print(s,vol,W.identify())
The FKP-bound is: 18.7691790191123 (1, 0) 0 (-5, 1) 2.989120282930? [m023(0,0)] (-4, 1) 2.666744783449? [m009(0,0)] (-3, 1) 2.029883212820? [m004(0,0), 4_1(0,0), K2_1(0,0), K4a1(0,0), otet02_00001(0,0)] (-2, 1) 0 (-1, 1) 0 (0, 1) 0 (1, 1) 0 (2, 1) 0 (3, 1) 2.0298832128193? [m003(0,0), otet02_00000(0,0)] (4, 1) 2.666744783449? [m010(0,0)] (5, 1) 2.989120282930? [m022(0,0)] (-3, 2) 2.828122088331? [m015(0,0), 5_2(0,0), K3_2(0,0), K5a1(0,0)] (-1, 2) 2.568970600937? [m007(0,0)] (1, 2) 2.5689706009367? [m006(0,0)] (3, 2) 2.8281220883308? [m017(0,0)] (-1, 3) 3.148509826441? [m029(0,0)] (1, 3) 3.148509826441? [m030(0,0)]
The exceptional slopes of W are classified (https://www.intlpress.com/site/pub/files/_fulltext/journals/cag/2006/0014/0005/CAG-2006-0014-0005-a006.pdf). There are exactly 6, so the above manifolds with 0 volume are really all not hyperbolic.
We continue with P:
bound=FKP_bound(volP.center(),snappy.Manifold('m026').volume(verified=True).center())
print('The FKP-bound is:',bound)
for s in P.short_slopes(length=bound*math.sqrt(P.cusp_areas()[0]))[0]:
P.dehn_fill(s,0)
vol=better_volume(P,try_hard=True)
if vol==0:
print(s,vol)
if vol!=0:
if vol.center()<snappy.Manifold('m026').volume(verified=True).center()+0.1:
print(s,vol,P.identify())
The FKP-bound is: 18.7691790191123 (1, 0) 0 (-4, 1) 3.1213347730123? [m027(0,0)] (-3, 1) 2.7818339123961? [m011(0,0)] (-2, 1) 2.0298832128193? [m003(0,0), otet02_00000(0,0)] (-1, 1) 0 (0, 1) 0 (1, 1) 0 (2, 1) 0 (3, 1) 2.5689706009367? [m006(0,0)] (4, 1) 3.059338057779? [m026(0,0)] (-3, 2) 2.9441064866767? [m019(0,0)] (-1, 2) 0 (1, 2) 2.029883212820? [m003(0,0), otet02_00000(0,0)] (3, 2) 2.828122088331? [m016(0,0), K3_1(0,0), K12n242(0,0)] (-2, 3) 2.828122088331? [m016(0,0), K3_1(0,0), K12n242(0,0)] (-1, 3) 2.568970600937? [m006(0,0)] (1, 3) 2.781833912396? [m011(0,0)] (2, 3) 2.944106486677? [m019(0,0)] (-1, 4) 3.059338057779? [m026(0,0)] (1, 4) 3.121334773013? [m027(0,0)]
P has also exactly 6 exceptional fillings and thus the above list is complete.
Thus we have a complete parent diagram:
'm003' is obtained by surgery on W and P
'm004' is obtained by surgery on W
'm006' is obtained by surgery on W and P
'm007' is obtained by surgery on W
'm009' is obtained by surgery on W
'm010' is obtained by surgery on W
'm011' is obtained by surgery on P
'm015' is obtained by surgery on W
'm016' is obtained by surgery on P
'm017' is obtained by surgery on W
'm019' is obtained by surgery on P
'm022' is obtained by surgery on W
'm023' is obtained by surgery on W
'm026' is obtained by surgery on P
Because of the symmetry of P, we get any manifold by two ways on P.
In particular, we see that we get all small manifolds by surgery on either P or W, but sometimes not on both.
Then we go through Dunfield's list of exceptional fillings to observe that the Boileau volume of L(2,1), L(3,1), and L(6,1) is realized by m009, m007, m010. Similarly, L(21,8), L(14,3), and L(7,2) are all realized by m017. All these are surgeries on W but not on P. Thus W is definitely needed in our statement.
On the other hand, we observe that the volumes of L(9,2) and L(13,3) are realized by m011 and the volumes of L(19,7) and L(18, 5) are realized by m016. Both we do get by surgery along P but not along W and thus P is also needed.
This finishes the proof of the statement.